﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanCafe.QuanCafe_BUS_WebService;
using System.IO;
using System.Threading;

namespace QuanCafe
{
    public partial class frmTU_CapNhatThucUong : Form
    {
        // khai báo biến servie
        QuanCafe_BUS_WebServiceSoapClient ws = new QuanCafe_BUS_WebServiceSoapClient();

        // khai báo biến kiểm tra tính xác thực của thông tin cập nhật
        private bool _maNhomThucUongHopLe = false;
        private string _tenanhcu;


        #region Khai báo các delegate

        #endregion


        public frmTU_CapNhatThucUong(string linkanh, string mathucuong, string tenthucuong, string dongia, string thongtin, string tinhtrang, string nhom, string cachphache, string thongtindinhduong)
        {
            InitializeComponent();
            // khởi tạo các sự kiện
            uscCapNhatThucUong.capNhatThucUong_chonAnh += new ucCapNhatThucUong.CapNhatThucUong_ChonAnhHandle(capNhat_chonAnh);
            // sự kiện kiểm tra nhóm
            uscCapNhatThucUong.capNhatThucUong_xacNhanNhomThucUong += new ucCapNhatThucUong.CapNhatThucUong_XacNhanNhomThucUongHandle(capNhat_xacNhanNhom);
            // ẩn một số thuộc tính đi
            uscCapNhatThucUong.LbnmathucuongVisible = false;
            uscCapNhatThucUong.BtnmathucuongVisible = false;
            uscCapNhatThucUong.TxtmathucuongVisible = false;
            // gán các giá trị
            uscCapNhatThucUong.Anhdaidien = linkanh;
            _tenanhcu = linkanh;
            uscCapNhatThucUong.Mathucuong = mathucuong;
            uscCapNhatThucUong.Tenthucuong = tenthucuong;
            uscCapNhatThucUong.Dongia = dongia;
            uscCapNhatThucUong.Thongtin = thongtin;
            uscCapNhatThucUong.Tinhtrang = int.Parse(tinhtrang);
            uscCapNhatThucUong.Nhomthucuong = nhom;
            uscCapNhatThucUong.Cachphache = cachphache;
            uscCapNhatThucUong.Thongtindinhduong = thongtindinhduong;

        }

        #region Viết các sự kiện cần thiết

        public void capNhat_chonAnh()
        {
            openFileDialog1.Title = "Open File";
            openFileDialog1.Filter = "Image Files(*.bmp;*.jpg;*.gif;*.png;*.ico)| (*.bmp;*.jpg;*.gif;*.png;*.ico)|All files (*.*)|*.*";
            openFileDialog1.FileName = "";

            try
            {
                openFileDialog1.InitialDirectory = "C:\\Temp";
            }
            catch
            {
                // skip it 
            }

            openFileDialog1.ShowDialog();

            if (openFileDialog1.FileName == "") // nếu người ta ko chọn
            {
                return;
            }
            else
            {
                // để đường dẫn lên textbox
                uscCapNhatThucUong.Linkanh = openFileDialog1.FileName;
                // sau dó hi?n ?nh lên
                uscCapNhatThucUong.Anhdaidien = openFileDialog1.FileName;
                // lấy ra tên ảnh
                uscCapNhatThucUong.Tenanh = Path.GetFileName(openFileDialog1.FileName);
            }
        }

        public void capNhat_xacNhanNhom()
        {
            try
            {
                // kiểm tra xem người ta có chọn mã chưa
                if (uscCapNhatThucUong.Nhomthucuong.Length != 0)
                {
                    // kiểm tra mã
                    bool flag = ws.NTU_DaTonTaiNhomThucUong(uscCapNhatThucUong.Nhomthucuong);
                    if (flag == true)
                    {
                        //xuất ra thông báo
                        MessageBox.Show("Mã nhóm thức uống hợp lệ!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        _maNhomThucUongHopLe = true;
                        return;
                    }
                    else
                    {
                        //xuất ra thông báo
                        MessageBox.Show("Mã nhóm thức uống chưa tồn tại!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        _maNhomThucUongHopLe = false;
                        return;
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(" Đã có lỗi xảy ra: " + e);
            }
        }

        private void btnDongY_Click(object sender, EventArgs e)
        {
            // kiểm tra xem có check manhomthucuong chua
            if (_maNhomThucUongHopLe == true) // check rồi
            {
                if (uscCapNhatThucUong.Linkanh != string.Empty) // nếu có thay đổi ảnh thì cập nhật ảnh
                {
                    // kiểm tra tên ảnh có trùng với trên server chưa
                    if (Path.GetFileName(_tenanhcu) == Path.GetFileName(uscCapNhatThucUong.Linkanh))
                    { 
                        // xuất thông báo không up dc
                        MessageBox.Show("Tên ảnh đã bị trùng trên server, vui lòng chọn với tên khác!","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
                        return;
                    }
                    // up ảnh lên
                    // gọi thread
                    Thread thread_uploadAnh = new Thread(uploadAnhdaidien);
                    thread_uploadAnh.SetApartmentState(ApartmentState.STA);
                    thread_uploadAnh.Start();
                    // gọi hàm cập nhật ảnh đại diện
                    ws.TU_CapNhatAnhDaiDienThanhCong(uscCapNhatThucUong.Mathucuong, uscCapNhatThucUong.Tenanh);
                }
                // lấy ra đơn giá
                float dongia = float.Parse(uscCapNhatThucUong.Dongia);
                // up lên server
                bool flag = ws.TU_CapNhatThucUongThanhCong(uscCapNhatThucUong.Mathucuong, uscCapNhatThucUong.Tenthucuong, dongia,  uscCapNhatThucUong.Thongtin, uscCapNhatThucUong.Tinhtrang, uscCapNhatThucUong.Nhomthucuong, uscCapNhatThucUong.Cachphache, uscCapNhatThucUong.Thongtindinhduong);
                if (flag == true) // thêm thành công
                {
                    MessageBox.Show("Thức uống được cập nhật thành công!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
                else
                {
                    MessageBox.Show("Cập nhật thức uống thất bại!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

                }
                
            }
            else
            {
                MessageBox.Show("Bạn chưa kiểm tra nhóm thức uống!", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);

            }
        }

        private void btnHuyBo_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        #endregion


        #region Xử lý các thread

        // upload ảnh lên
        public void uploadAnhdaidien()
        {
            ws.Image_UploadThucUong(uscCapNhatThucUong.Linkanh);
        }

        #endregion

        
    }
}
